home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* A Pororoca - Instalaτπo '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Avalilable Disk Space ''Dialog ID's CONST ESCLINGUA = 50 CONST WELCOME = 100 CONST WELCING = 110 CONST WELCESP = 120 CONST ASKQUIT = 200 CONST ASKQING = 210 CONST ASKQESP = 220 CONST DESTPATH = 300 CONST DESTPING = 310 CONST DESTPESP = 320 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST CHECK = 2500 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL SizeReq& '' Total Disk Size required for installation no diret≤rio de instalacao GLOBAL WinSysReq& '' Requerido no diret≤rio do windows\system ''File Types GLOBAL appDEST$ ''Default destination directory. GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL WinSys32Dir$ GLOBAL WINDRIVE$ ''Windows Drive Letter. GLOBAL CHECKSTATES$ GLOBAL MinorVer% GLOBAL OnNT$ GLOBAL SrcDir$ GLOBAL QuerInstalar% GLOBAL Lingua$ GLOBAL Delta% DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER DECLARE FUNCTION GetDC LIB "User" (hWnd%) As Integer DECLARE FUNCTION ReleaseDC LIB "User" (hWnd%,hDC%) AS INTEGER DECLARE FUNCTION GetDeviceCaps LIB "GDI" (hDC%,nIndex%) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure ''Pergunta a lingua ... sz$ = "CONTINUE" SELECT CASE sz$ CASE "CONTINUE" ''Potugues Lingua$ = "0" Delta% = 0 CASE "EXIT" ''Ingles Lingua$ = "2" Delta% = 10 CASE "BACK" ''Espanhol Lingua$ = "1" Delta% = 20 END SELECT WIN32ENABLED% = 0 MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() Processor% = GetProcessorType() WinDir$ = GetWindowsDir() DEST$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() WinSys32Dir$ = WinDir$ + "system32" x% = GetScreenWidth y% = GetScreenHeight IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN SELECT CASE Delta% CASE 0 i% = DoMsgBox("Para a instalaτπo deste software Θ necessßria uma versπo mais nova do windows. Por favor, atualize o seu software.", "Problema na Instalaτπo", MB_OK+MB_TASKMODAL+MB_ICONHAND) CASE 10 i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) CASE 20 i% = DoMsgBox("Para la instalaci≤n de este software es necesaria una versi≤n mßs nueva del windows. Por favor, actualiza tu software.", "Problema en la Instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONHAND) END SELECT END END IF 'Prevents installation on 286 IF Processor% < 3 THEN SELECT CASE Delta% CASE 0 i% = DoMsgBox("Os jogos educativos precisam de um processador mais atual.", "Problema na instalaτπo.", MB_OK+MB_TASKMODAL+MB_ICONHAND) CASE 10 i% = DoMsgBox("Educational Games requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) CASE 20 i% = DoMsgBox("Los juegos educativos precisan de un procesador mßs actual.", "Problema en la instalaci≤n.", MB_OK+MB_TASKMODAL+MB_ICONHAND) END SELECT END END IF SetBitmap CUIDLL$, LOGO+Delta% SELECT CASE Delta% CASE 0 SetTitle "Jogos Educativos - Instalaτπo" CASE 10 SetTitle "Educational Games Setup Program" CASE 20 SetTitle "Juegos Educativos - Instalaci≤n" END SELECT szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ WINDRIVE$ = MID$(GetWindowsDir, 1, 1) WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME+Delta%, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF SrcDir$ = GetSymbolValue("STF_SRCDIR") ''Prepare Copy list and check size QuerInstalar% = 6 ClearCopyList AddSectionFilesToCopyList "runtime", MakePath(SrcDir$,""), WinSysDir$ '' Check windrive diskspace SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF Install '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = DEST$ + "\_msrstrt.exe" Batch$ = DEST$ + "\_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(CUIDLL$, RESTART+Delta%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII+Delta%, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 END IF END IF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%+Delta%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: SELECT CASE Delta% CASE 0 i% = DoMsgBox("Houve um problema na instalaτπo, entre em contato com a Z-Movie", "Problema na instalaτπo", MB_OK+MB_TASKMODAL+MB_ICONHAND) CASE 10 i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) CASE 20 i% = DoMsgBox("Hubo un problema en la instalaci≤n, entra en contacto con Z-Movie", "Problema en la instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONHAND) END SELECT END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT+Delta%, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH+Delta%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN+Delta%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SetRestartDir WinDir$ CopyFilesInCopyList ''Meus arquivos e etc IF QuerInstalar% = 6 THEN SELECT CASE Delta% CASE 0 CreateProgmanGroup "Jogos Educativos", "", cmoNone ShowProgmanGroup "Jogos Educativos", 1, cmoNone CASE 20 CreateProgmanGroup "Juegos Educativos", "", cmoNone ShowProgmanGroup "Juegos Educativos", 1, cmoNone CASE 10 CreateProgmanGroup "Educational Games", "", cmoNone ShowProgmanGroup "Educational Games", 1, cmoNone END SELECT SELECT CASE Delta% CASE 0 CreateProgmanItem "Jogos Educativos", "Lucas sai de fΘrias",MakePath(SrcDir$,"educat.exe"), "", cmoOverwrite CreateProgmanItem "Jogos Educativos", "Leia-me dos Jogos Educativos","notepad.exe " + MakePath(SrcDir$,"infop.txt"), "", cmoOverwrite CASE 20 CreateProgmanItem "Juegos Educativos", "Lucas sali≤ de vacaciones",MakePath(appDEST$,"educat.exe"), "", cmoOverwrite CreateProgmanItem "Juegos Educativos", "L╔AME de los Juegos Educativos","notepad.exe " + MakePath(SrcDir$,"infoe.txt"), "", cmoOverwrite CASE 10 CreateProgmanItem "Educational Games", "Lucas goes on vacation",MakePath(appDEST$,"educat.exe"), "", cmoOverwrite CreateProgmanItem "Educational Games", "Read me","notepad.exe " + MakePath(SrcDir$,"infoi.txt"), "", cmoOverwrite END SELECT ENDIF SELECT CASE Delta% CASE 0 x% = DoMsgBox("Nπo esqueτa de executar o φcone <LEIA-ME dos Jogos Educativos> antes de executar o programa instalado!", "ATEN╟├O", MB_OK) CASE 10 x% = DoMsgBox("Do not forget to run Read me", "WARNING", MB_OK) CASE 20 x% = DoMsgBox("íNo te olvides de ejecutar el φcono <L╔AME de los Juegos Educativos> antes de ejecutar los programas instalados!", "ATENCI╙N", MB_OK) END SELECT END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION